import { Contract, ContractFunction,ContractTransaction } from "@ethersproject/contracts";

// 需要继承合约对象
export interface HelloContract extends Contract{
    // 合约中的方法定义，使用ContractFunction 泛型定义
    // export type ContractFunction<T = any> = (...args: Array<any>) => Promise<T>;
    // T 是方法返回值得类型，最后返回Promise 类型
    getagge:ContractFunction<string>,
    // 交易类型，返回ContractTransaction
    setage:ContractFunction<ContractTransaction>
}

// 需要继承合约对象
export interface GreetContract extends Contract{
    // 合约中的方法定义，使用ContractFunction 泛型定义
    // export type ContractFunction<T = any> = (...args: Array<any>) => Promise<T>;
    // T 是方法返回值得类型，最后返回Promise 类型
    greet:ContractFunction<string>,
    // 交易类型，返回ContractTransaction
    setGreeting:ContractFunction<ContractTransaction>
}